declare i32 @getint()

declare void @putint(i32)

define i32 @main() {
label_entry:
  %op3 = call i32 @getint()
  br label %label4
label4:                                                ; preds = %label_entry, %label21
  %op5 = phi i32 [ 1, %label_entry ], [ %op25, %label21 ]
  %op_b = phi i32 [ 1, %label_entry ], [ %op_b_new, %label21 ]
  %op6 = icmp slt i32 %op5, 999999999
  br i1 %op6, label %label7, label %label12
label7:                                                ; preds = %label4
  %op10 = srem i32 %op5, %op3
  %op11 = icmp eq i32 %op10, 0
  br i1 %op11, label %label15, label %label18
label12:                                                ; preds = %label4
  call void @putint(i32 %op3)
  ret i32 %op5
label15:                                                ; preds = %label7
  %op17 = add i32 %op5, 3
  br label %label21
label18:                                                ; preds = %label7
  %op20 = add i32 %op5, 2
  br label %label21
label21:                                                ; preds = %label15, %label18
  %op_a_temp = phi i32 [ %op17, %label15 ], [ %op20, %label18 ]
  %op_b_new = phi i32 [ 411, %label15 ], [ 101, %label18 ]
  %op24 = srem i32 %op_b_new, 3
  %op25 = add i32 %op_a_temp, %op24
  br label %label4
}
